home *** CD-ROM | disk | FTP | other *** search
/ F1 Licenseware / F1 Licenseware - Volume 1.iso / disks / 055a.dms / 055a.adf / READERS_SOURCE.LHA / READERS_SOURCE / A_CAMPBELL / AJC-COLOUR-DETECT.AMOS / AJC-COLOUR-DETECT.amosSourceCode next >
AMOS Source Code  |  1992-02-26  |  2KB  |  77 lines

  1. '
  2. ' "COLOUR DETECT EXAMPLE"
  3. ' By Andrew Campbell 
  4. '
  5. ' Joystick LEFT/RIGHT to turn. 
  6. ' Joystick UP to move. 
  7. '
  8. ' Cheers.
  9. '
  10. '
  11. Screen Open 1,320,200,16,Lowres
  12. Flash Off : Curs Off : Hide On 
  13. Get Sprite Palette 
  14. Colour 1,$0 : Colour 10,$F
  15.  
  16. DR=1 : OK=0
  17. For I=1 To 8 : Hot Spot I,8,8 : Next I
  18. Ink 10 : Polygon 20,50 To 250,100 To 200,100
  19. Polygon 90,100 To 200,160 To 10,150
  20. For I=1 To 10 : Box I,I To 319-I,199-I : Next I
  21.  
  22.  
  23. LOOOPER:
  24.  
  25. XP=50 : YP=50-4
  26. Bob 1,XP,YP,DR : Wait Vbl 
  27.  
  28. MAIN_LOOP:
  29.  
  30. Repeat 
  31.  FT=1
  32.  If Jright(1) Then Wait 3 : Inc DR : Gosub DR_CHECK : Bob 1,XP,YP,DR
  33.  If Jleft(1) Then Wait 3 : Dec DR : Gosub DR_CHECK : Bob 1,XP,YP,DR
  34.  If Jup(1) Then Gosub MOVE_IT
  35. Until WIN=1
  36.  
  37. DR_CHECK:
  38. If DR<1 Then DR=8
  39. If DR>8 Then DR=1
  40. Return 
  41.  
  42. MOVE_IT:
  43. OK=0
  44. If DR=1 Then Repeat : Dec XP : Gosub G_C : Until OK=1
  45. If DR=2 Then Repeat : Dec XP : Dec YP : Gosub G_C : Until OK=1
  46. If DR=3 Then Repeat : Dec YP : Gosub G_C : Until OK=1
  47. If DR=4 Then Repeat : Inc XP : Dec YP : Gosub G_C : Until OK=1
  48. If DR=5 Then Repeat : Inc XP : Gosub G_C : Until OK=1
  49. If DR=6 Then Repeat : Inc XP : Inc YP : Gosub G_C : Until OK=1
  50. If DR=7 Then Repeat : Inc YP : Gosub G_C : Until OK=1
  51. If DR=8 Then Repeat : Dec XP : Inc YP : Gosub G_C : Until OK=1
  52.  
  53. G_C:
  54. C=Point(XP-6,YP)
  55. D=Point(XP+5,YP)
  56. E=Point(XP,YP-6)
  57. F=Point(XP,YP+4)
  58.  
  59. If FT=1
  60.  If C=10 or D=10 or E=10 or F=10 : Gosub CORRECTION : End If 
  61.  FT=0
  62. End If 
  63.  
  64. If Jleft(1)<>-1 or Jright(1)<>-1 Then OK=1
  65. If C=10 or D=10 or E=10 or F=10 Then OK=1
  66.  
  67. Bob 1,XP,YP,DR
  68. If XP<0 or XP>319 or YP<0 or YP>199 Then Boom : Goto LOOOPER
  69. Return 
  70.  
  71. CORRECTION:
  72. If DR=1 or DR=2 or DR=8 Then Inc XP
  73. If DR=2 or DR=3 or DR=4 Then Inc YP
  74. If DR=6 or DR=7 or DR=8 Then Dec YP
  75. If DR=4 or DR=5 or DR=6 Then Dec XP
  76. FT=0 : Pop : Pop : Pop 
  77. Goto MAIN_LOOP